package command.usuario;

import java.io.IOException;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;

import model.Caso;
import model.Pasta;

import command.ICommand;

import dao.assinatura.CasoDAO;
import dao.assinatura.PastaDAO;
import dao.fabrica.FabricaDAO;

public class AdicionarCasoCommand implements ICommand {
	
	private String situacao;
	private Date dataInicio;
	private Date dataFim;
	private String obs;
	private int idPasta;
	
	public String execute(HttpServletRequest request) throws ServletException, IOException {
		
		try {
			SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
			dataInicio = null;
			dataFim = null;
			situacao = request.getParameter("inputSituacao");
			
			
			if (situacao == null)
			{
				return "/paginas/cadastro/caso.jsp?p="+request.getParameter("p");
			}else
			{
				obs = request.getParameter("inputObs");
				idPasta = Integer.parseInt(request.getParameter("inputPastaId"));
				
				try {
					if (!request.getParameter("inputDataInicio").equals(""))
						dataInicio =  (Date)format.parse(request.getParameter("inputDataInicio"));
					if (!request.getParameter("inputDataFim").equals(""))
						dataFim = (Date)format.parse(request.getParameter("inputDataFim"));
				} catch (ParseException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}  
				
				PastaDAO pastaDAO = FabricaDAO.createPasta();
				Pasta pasta = pastaDAO.getPastaById(idPasta);
				if (pasta != null)
				{
					Caso caso = new Caso(situacao,dataInicio,dataFim,obs);
					CasoDAO casoDAO = FabricaDAO.createCaso();
				
					int idCaso = casoDAO.addCaso(caso);	
					pasta.setIdCaso(idCaso);
					pastaDAO.updatePastaCaso(pasta);
				}	
			}
		} catch (SQLException e) {
			e.printStackTrace();
			return "/paginas/cadastro_invalido.jsp";
		}
		
		
		return "/paginas/cadastro/caso.jsp?resultado=OK";
	}
	
}
